package main

import "fmt"

func main() {
	// 切片slice的4种声明方式
	// 声明1:进行初始化，默认值为1，2，3.长度len为3
	slice1 := []int{1, 2, 3}
	fmt.Printf("len = %d,slice =%v\n", len(slice1), slice1)
	fmt.Println("===================")

	// 声明2:声明了切片但是没有给切片分配空间
	var slice2 []int
	fmt.Println("slice2=", slice2)
	// 开辟三个内存空间，默认值为3
	slice2 = make([]int, 3)
	fmt.Printf("len = %d,slice =%v\n", len(slice2), slice2)
	fmt.Println("===================")

	// 声明3:声明一个切片，同时为切片分配内存空间,默认值为0
	var slice3 []int = make([]int, 3)
	fmt.Printf("len = %d,slice =%v\n", len(slice3), slice3)
	fmt.Println("===================")

	// 声明4：声明一个变量,同时分配内存空间，默认值为0，通过 := 推导出slice是一个切片
	slice4 := make([]int, 3)
	fmt.Printf("len = %d,slice =%v\n", len(slice4), slice4)
	fmt.Println("===================")

	// 判断一个切片是否为0
	var slice5 []int
	if slice5 == nil {
		fmt.Println("是个空切片")
	} else {
		fmt.Println("切片具有空间")
	}
}
